package com.example.constellation.util;

import android.content.Context;
import android.content.res.AssetManager;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import com.example.constellation.bean.StarInfoBean;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 工具类
 * 读取Assets文件夹中的数据
 */
public class AssetsUtil {
    private static Map<String,Bitmap> logoImgMap;
    private static Map<String,Bitmap> contentlogoImgMap;
    /*读取assets文件夹当中的内容,存放到字符串当中*/
    public static String getJsonFromAssets(Context context,String filename){
        //获取Assets文件夹管理器
        AssetManager am=context.getResources().getAssets();
        ByteArrayOutputStream baos=new ByteArrayOutputStream();
        //获取输入流
        try {
            InputStream inputStream=am.open(filename);
            //读取内容存放内存流中
            int hasRead=0;
            byte[]buf =new byte[1024];
            while (true){
                hasRead=inputStream.read(buf);
                if(hasRead==-1){
                    break;
                }
                baos.write(buf,0,hasRead);
            }
            String msg=baos.toString();
            inputStream.close();
            return msg;
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }
    //    读取Assets文件夹下的图片,返回bitmap对象
    public static Bitmap getBitmapFromAssets(Context context,String filename){
        Bitmap bitmap=null;
        //获取文件夹管理者
        AssetManager am=context.getResources().getAssets();
        try {
            InputStream is=am.open(filename);
            //通过位图管理器,将输入流转换成位图对象
            bitmap= BitmapFactory.decodeStream(is);
            is.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        System.out.println("bitmap="+bitmap);
        return bitmap;
    }
    /**
     * 将Assets文件夹中的图片一起读取,放入到内存中-便于管理
     */
    public static  void saveBitmapFromAssets(Context context, StarInfoBean starInfoBean){
        logoImgMap=new HashMap<>();
        contentlogoImgMap=new HashMap<>();
        List<StarInfoBean.StarinfoBean> starList=starInfoBean.getStarinfo();
        for(int i=0;i<starList.size();i++){
            String logoname=starList.get(i).getLogoname();
            String filename="xzlogo/"+logoname+".png";//图片路径
            Bitmap logoBm=getBitmapFromAssets(context,filename);
            logoImgMap.put(logoname,logoBm);
            String contentName="xzcontentlogo/"+logoname+".png";//图片2路径
            Bitmap bitmap=getBitmapFromAssets(context,contentName);
            contentlogoImgMap.put(logoname,bitmap);//将图片放入到map中
        }
    }
    //通过get得到
    public static Map<String, Bitmap> getLogoImgMap() {
        return logoImgMap;
    }

    public static Map<String, Bitmap> getContentlogoImgMap() {
        return contentlogoImgMap;
    }
}
